﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PublishData.BLL;

namespace PublishData
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
            UpdateNguoiSuDung();
        }

        #region Đăng nhập
        private void OnDangNhapClick(object sender, EventArgs e)
        {
            DangNhap();
        }

        public void DangNhap()
        {
            FormDangNhap frm = new FormDangNhap();
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                Program.NguoiSuDung = frm.NguoiSuDung;
            else
                Program.NguoiSuDung = null;
            UpdateNguoiSuDung();
        }
        #endregion

        #region Đăng xuất
        private void OnDangXuatClick(object sender, EventArgs e)
        {
            DangXuat();
        }

        public void DangXuat()
        {
            Program.NguoiSuDung = null;
            UpdateNguoiSuDung();
        }
        #endregion

        #region Thoát chương trình
        private void OnMenuHeThong_ThoatClick(object sender, EventArgs e)
        {
            ThoatChuongTrinh();
        }

        public void ThoatChuongTrinh()
        {
            this.Close();
        }
        #endregion

        private void OnLoad(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
            Program.NguoiSuDung = null;
            this.DangNhap();
        }

        private void OnMenuHeThong_DoiMatKhauClick(object sender, EventArgs e)
        {
            FormDoiMatKhau frm = new FormDoiMatKhau(Program.NguoiSuDung);
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Program.NguoiSuDung = frm.NguoiSuDung;
                DialogUtils.ShowMessage("Đổi mật khẩu thành công!");
            }
            frm = null;
        }

        /// <summary>
        /// Cập nhật hiển thị người sử dụng đang làm việc
        /// </summary>
        internal void UpdateNguoiSuDung()
        {
            if (Program.NguoiSuDung == null)
            {
                #region Huỷ đăng nhập
                menuHeThong_DangNhap.Visible =
                    btnDangNhap.Visible = true;
                menuHeThong_DangXuat.Visible =
                    btnDangXuat.Visible =
                    bntNapDuLieu.Visible =
                    // menuQuanLyNguoiSuDung.Visible =
                    menuHeThong_DoiMatKhau.Visible = false;
                lblStatus.Text = "Chưa đăng nhập";
                #endregion
            }
            else
            {
                #region Thiết lập thông tin người sử dụng
                menuHeThong_DangNhap.Visible =
                    btnDangNhap.Visible = false;
                menuHeThong_DangXuat.Visible =
                    btnDangXuat.Visible =
                    bntNapDuLieu.Visible =
                    menuHeThong_DoiMatKhau.Visible = true;
                //if (Program.NguoiSuDung.quyen == ((int)Quyen.Admin).ToString())
                // menuQuanLyNguoiSuDung.Visible = true;
                lblStatus.Text = string.Format("Tên đăng nhập: {0}",
                    Program.NguoiSuDung.hoTen);
                #endregion
            }
        }

        private void menuThongTin_Click(object sender, EventArgs e)
        {
            frmAbout frm = new frmAbout();
            frm.ShowDialog();
        }

        private void bntNapDuLieu_Click(object sender, EventArgs e)
        {
            frmPublish frm = new frmPublish();
            frm.ShowDialog();
        }

        private void menuQuanLyNguoiSuDung_Click(object sender, EventArgs e)
        {
            FormQuanLyNguoiSuDung frm = new FormQuanLyNguoiSuDung();
            frm.ShowDialog();
        }
    }
}
